using System;

namespace Skywalker.Fluently
{
    public interface IFactory
    {
        T CreateBuilder<T>() where T:IBuilder, new();
        T ExecuteBuilder<T>(T builder, Action<T> setup) where T:IBuilder;
        T CreateAndExecuteBuilder<T>(Action<T> setup) where T:IBuilder, new();
    }
}